#pragma once

#include "MatlabInterface.h"
#include "MatlabMatrix.h"
#include <string>
using namespace std; 

/*
This class provides a way of plotting things in matlab 
*/
class MREAgent; 
namespace matlab{

class MatlabDrawer: 
	public MatlabInterface
{
public:
	MatlabDrawer(const char* name);
	virtual ~MatlabDrawer(void);
	virtual void drawMeshedValues(MatlabMatrix<double>& values, string type,  int pos=0); 
	virtual void drawScatteredPoints(MatlabMatrix<double>& points,  int pos=0); 
	virtual void drawGrids(MatlabMatrix<double>& values, int pos); 
	virtual void draw(){}			//inherited classes should override this to draw whatever they want


	void setSubplotDimension(int r, int c){nRow = r; nCol = c; }
	MatlabMatrix<double>& createMeshedDataStructure(const int resolution, int howMany,  MREAgent* agent); 


	//these two are used to generate multiple figures in one window using subplot (they should be set by the inherited class)
	int nRow; 
	int nCol; 
	string handleName; 
};
}
